package net.xdclass.component;

import lombok.extern.slf4j.Slf4j;
import net.xdclass.config.SmsConfig;
import net.xdclass.util.CommonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

@Component
@Slf4j
public class SmsComponent {

	private static final String URL_TEMPLATE="https://jmsms.market.alicloudapi.com/sms/send?mobile=%s&templateId=%s&value=%s";

	@Autowired
	private  RestTemplate restTemplate;

	@Autowired
	private SmsConfig smsConfig;

	public void send(String mobile,String templatedId,String value){
		long beginTime = CommonUtil.getCurrentTimestamp();
		String url =  String.format(URL_TEMPLATE,mobile,templatedId,value);
		HttpHeaders headers = new HttpHeaders();
		headers.set("Authorization","APPCODE "+ smsConfig.getAppCode());
		HttpEntity entity =new HttpEntity<>(headers);
		ResponseEntity<String> response = restTemplate.exchange(url,HttpMethod.POST,entity,String.class);
		long endTime = CommonUtil.getCurrentTimestamp();

		log.info("耗时={},url={},body={}",endTime-beginTime,url,response.getBody());
		if (response.getStatusCode().is2xxSuccessful()){
			log.info("发送成功");
		}else{
			log.info("发送失败");
		}


	}
}